home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Tool Chest / Development Tools & Languages / • Other Platforms / PCCTS / testcpp / 2 / test.g < prev   
Encoding:
Text File  |  1994-09-14  |  1.0 KB  |  43 lines  |  [TEXT/MPS ]

  1. /* Ariel Tamches (tamches@cs.wisc.edu): This tests linking in a simple non-DLG scanner */
  2.  
  3. /* We assume that #tokdefs is not employed for this example; i.e.,
  4.  * ANTLR assigns token numbers.
  5.  *
  6.  * ANTLR option -gx must be used to turn off generation of DLG crud (when you
  7.  * want to define your own token stream).
  8.  */
  9.  
  10. /* user must define ANTLRToken outside of #header */
  11. <<
  12. typedef ANTLRCommonToken ANTLRToken;    /* use a predefined Token class */
  13. >>
  14.  
  15. /* At this point, ANTLRToken and ANTLRTokenStream are defined, user must now
  16.  * derive a class from ANTLRTokenStream (which embodies the user's scanner)
  17.  */
  18. <<#include "MyLexer.h">>
  19.  
  20. <<
  21. main()
  22. {
  23.     /* create one of my scanners */
  24.     MyLexer scan;
  25.     ANTLRTokenBuffer pipe(&scan);
  26.     /* create a parser of type Expr hooked to my scanner */
  27.     Expr parser(&pipe);
  28.     parser.init();
  29.     parser.setEofToken(Eof);
  30.  
  31.     parser.e();                /* start parsing at rule 'e' of that parser */
  32. }
  33. >>
  34.  
  35. class Expr {                /* Define a grammar class */
  36.  
  37. e    :    IDENTIFIER NUMBER
  38.         <<fprintf(stderr, "text is %s,%s\n", $1->getText(), $2->getText());>>
  39.         Eof
  40.     ;
  41.  
  42. }
  43.